﻿using PgBirdie.Core.Model.Database.Structure;

namespace PgBirdie.Core.Service.Dump
{
    public interface IDumpToDiskService
    {
        bool CreateDatabaseDirectory(PgDatabase db);
        bool CreateSchemaDirectory(PgSchema schema);
        bool CreateTableStructureDirectory(PgSchema schema);
        bool CreateTableStaticDataDirectory(PgSchema schema);
        bool CreateSequenceDirectory(PgSchema schema);

        bool ToDisk(string path, string content);
        bool PurgeDatabaseDirectory(PgDatabase db);

        string GetDatabaseStructureSql(PgDatabase db);
        string GetSchemaStructureSql(PgSchema schema);
        string GetSequenceSql(PgSequence sequence);   
        string GetTableStructureSql(PgTable table);
        string GetTableStaticDataSql(PgTable table);

        string GetResetSql(PgDatabase db);
    }
}